package com.tedu.day02.oop;

/**
 * This关键字---super关键字--使用完全一致
 * 不需要继承--当前类、指代当前
 * 使用方法：调用当前的属性、方法、构造器
 *              this.属性          【当前类的属性赋值】
 *                                  出现构造器、方法中
 *                                  区别当前类的属性与参数“名称”一致
 *              this.方法
 *              this()               多个有参构造器
 *  笔试题：this和super关键字区别？
 *        this  调用本类的属性、方法、构造器
 *        super 调用父类的属性、方法、构造器、存在继承关系，使用super
 *        this() 与 super()---传递参数：赋值
 *        this()调用本类其他构造器---构造器首行
 *        super()调用父类其他构造器--子类构造器首行
 *        this() 与 super()无法同时出现在对象构造器中
 */

public class This关键字 {
    int i;//属性---很少赋值【声明未赋值】--构造器或者方法中赋值
    int j;//属性---很少赋值【声明未赋值】--构造器或者方法中赋值

    //构造器：有参   需求:创建1个参数对象，给i跟j赋值【跟super一样】
    public This关键字(int i, int j) {
        this.j = j;
        this.i = i;

    }

    public This关键字(int i) {
        this(3,4);
        this.i = i;//常见： this.属性【当前类下属性】=参数
                   //赋值  this.i = i
    }
    //方法--this.方法
    public void testI(){
        System.out.println("我是I");
    }
    public void testJ(){//调取---输出：我是I 我是J
        this.testI();
        System.out.println("我是J");
    }
    public static void main(String[] args) {
        System.out.println(new This关键字(1).i);  //属性没有输出语句
        //new This关键字(1).testJ();//方法有输出语句
    }
}
